package com.example.lib_base.net

import okhttp3.OkHttpClient
import okhttp3.logging.HttpLoggingInterceptor
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import java.net.Proxy
import java.util.concurrent.TimeUnit

/**
 * 网络请求工具类
 * 超时时间
 * 日志拦截器
 * 自定义拦截器
 * 网络重连（只能重连一次）
 * 防止抓包（只针对其中一种抓包）
 */
object RetrofitUtils {
    fun getRetrofit():Retrofit{
        val client = OkHttpClient.Builder()
            .connectTimeout(5,TimeUnit.SECONDS)
            .readTimeout(5,TimeUnit.SECONDS)
            .writeTimeout(5,TimeUnit.SECONDS)
            .addInterceptor(HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY))
            .addInterceptor(TokenInterceptor())
            .retryOnConnectionFailure(true)//设置重连   只能重新连接一次  如果想重连多次  设置拦截器
            .proxy(Proxy.NO_PROXY)//可防止部分抓包
            .build()
        val retrofit = Retrofit.Builder()
            .baseUrl(Cons.BASE_URL)
            .client(client)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
        return retrofit
    }
}